Current mobile systems, such as a mobile phone or a PDA, show a continuous increase in complexity due to the ever increasing need for implementing new features and improvements of existing functions. This is enabled by the increasing number and complexity of the components of a system. At the same time the data rates at which these components communicate increases too. The higher data rates in combination with the increased system complexity has created the need for a modular approach. According to such an approach the processing system comprises a plurality of relatively independent, complex modules.
In conventional mobile systems, the modules usually communicate to each other via a expensive parallel dedicated links. As the number of modules increases however, this way of communication is no longer practical for the following reasons. First, increased number of links are too costly. Second, using dedicated links limits the flexibility of quickly creating new system configurations.
A communication network using serial links forms an effective way to overcome these disadvantages. Networks have received considerable attention recently as a solution to the interconnect problem in highly-complex mobile systems (e.g., the UniPro Working Group is currently defining a network protocol for mobile devices in the MIPI standardization body; for more information please refer to www.mipi.org). The reason is twofold. First, the network links are serial, which considerably reduces the number of pins/wires for a links, thus, considerably reduces the interconnect cost. Second, networks offer flexibility in the way modules are interconnected, allowing quick and easy creation of new configurations.
Introducing network interconnects radically changes the communication when compared to direct connections. This is because of the multi-hop nature of a network, where communication modules are not directly connected, but are remotely separated by one or more network nodes. The communication control, which in a standard mobile phone is controlled by the application processor, becomes a network task, and is distributed across network nodes. Moreover, new issues must be addressed, such as data ordering and flow control, either in specialized proprietary modules, or in the network itself.
A network typically consists of a plurality of routers and network interfaces. Routers serve as network nodes and are used to transport data from a source network interface to a destination network interface by routing data on a correct path to the destination on a static basis (i.e., route is predetermined and does not change), or on a dynamic basis (i.e., route can change depending e.g., on the load to avoid hot spots). Routers can also implement time guarantees (e.g., rate-based, deadline-based, or using pipelined circuits in a TDMA fashion). For more information, please refer to “Trade-offs in the design of a router with both guaranteed and best-effort services for networks on chip; by Rijpkema et al., in IEE Proc.-Comput. Digit. Tech. Vol. 150, Nr. 5, September 2003, which is incorporated herein by reference.
The network interfaces are connected to a module, which may represent any kind of data processing unit, a display, a camera, a memory, etc. In particular, the network interfaces constitute a communication interface between the modules and the network. The network interfaces are designed to handle data sequentialisation (fitting the data offered by the module to the serial links) and packetization (adding the packet headers and trailers needed internally by the network). The network interfaces may also implement packet scheduling, which can include timing guarantees and admission control.
A cost-effective way of providing time-related guarantees (i.e., throughput, latency and jitter) is to use pipelined circuits in a TDMA (Time Division Multiple Access) fashion, which is advantageous as it requires less buffer space compared to other schemes, such as rate-based or deadline-based. Using TDMA, the available time and therefore the bandwidth is divided in time slots of equal size, which may be reserved to data streams. For each link a slot table may be provided. The reservation of slots ensures that data streams with real-time constrains can comply to their timing requirement. In other words, those data streams with reservation in the slot table are guaranteed a minimum bandwidth and an upper bound of latency, i.e. guaranteed service GS data. Those data without slot reservations are referred to as best-effort BE data. The best-effort BE data is transferred in slots which are not reserved or reserved but not used, i.e. if a slot is not reserved or a slot is reserved but not used, then the slot is used to transfer best-effort BE data. So a slot is used either to transfer guaranteed data or best-effort data.
At each slot, a data item is moved from one network component to the next one, i.e. between routers or between a router and a network interface. Therefore, when a slot is reserved at an output port, the next slot must be reserved on the following output port along the path between an master and a slave module, and so on.
The data which can be transferred during a time slot can be referred to as a packet. The data packet typically consists of a payload, i.e. the actual data which is to be sent over the network. Optionally, a header can be provided which may comprise information relating to the payload length, the sequence number of the payload, whether it is a best-effort BE or guaranteed GS connection etc. Furthermore, optionally a trailer can be provided at a CRC check. However, the header and the trailer are merely optional.
The routing of the data can be performed by using a header containing an address or a sequence of output ports which are to be used to route the packets through the network. If the data packets relate to a guaranteed throughput connection, the routing information can also be stored in slot tables arranged in the network interfaces and/or the routers.
As the packet length of the modules do not necessarily correspond to the packet length of the communication of a network, data messages from the modules may be embedded in one slot or may span over multiple slots. However, a packet will always start at the beginning of a time slot. This is in particular advantageous as very simple state machines for checking the packet headers can be provided. State machines checking the packet headers can be used to set the switches to move the data to a correct output port. Once the switch is set, all data contained in a particular slot is transferred to the same output port.
To optimize for low latency, the time slots are made as small as possible. However, especially in off-chip networks (communication between multiple chips in an electronic device) using serial links, the time slots may have larger size (e.g., 128 bytes) to reduce the header/trailer overhead, and to reduce power consumption. In order to optimize the power dissipation, larger data amounts are transferred at once to allow any link to stay in a standby or sleep mode for a longer period of time. On the other hand, larger slots will result in larger latencies and larger buffers.